#ifndef _DICOM_ECRYPT_BYTE_ARRAY_H_
#define _DICOM_ECRYPT_BYTE_ARRAY_H_

#include <stdint.h>
#include <vector>
#include <string>

namespace dicom {

class ByteArray: public std::vector<uint8_t>
{
	typedef std::vector<uint8_t> base;
public:
	ByteArray(): base() { }
	explicit ByteArray(size_t n): base(n) { }
	~ByteArray() { }

	std::string toBase64Str() const;
	std::string toUrlBase64Str() const;
	std::string toRawStr() const;
	std::string toHexStr() const;

	static ByteArray fromRawStr(const std::string &str);
	static ByteArray fromHexStr(const std::string &str);
	static ByteArray genRandom(size_t size);
};


};

#endif // _DICOM_ECRYPT_BYTE_ARRAY_H_
